﻿using System;
using System.Windows;
using System.ComponentModel;

namespace PasswordProvider.ViewModel.Framework
{
    public class VisualViewModel : ViewModelBase
    {
        #region Construction
        internal VisualViewModel()
        { }
        internal VisualViewModel(string displayName)
            : base(displayName)
        { }
        internal VisualViewModel(string displayName, string toolTip)
            : base(displayName)
        {
            _toolTip = toolTip;
        }
        internal VisualViewModel(string displayName, Visibility visibility)
            : base(displayName)
        {
            _visibility = visibility;
        }
        internal VisualViewModel(string displayName, string toolTip, bool isEnabled)
            : base(displayName)
        {
            _toolTip = toolTip;
            _isEnabled = isEnabled;
        }
        internal VisualViewModel(Visibility visibility)
            : base()
        {
            _visibility = visibility;
        }
        internal VisualViewModel(string displayName, string toolTip, Visibility visibility)
            : base(displayName)
        {
            _toolTip = toolTip;
            _visibility = visibility;
        }

        #endregion // Construction

        #region Properties

        public string ToolTip
        {
            get { return _toolTip; }
            set { base.SetPropertyValue(value, ref _toolTip, "ToolTip"); }
        } private string _toolTip;

        public Visibility Visibility 
        {
            get { return _visibility; }
            set { base.SetPropertyValue(value, ref _visibility, "Visibility"); }
        } private Visibility _visibility = Visibility.Visible;

        public bool IsEnabled
        {
            get { return _isEnabled; }
            set { SetPropertyValue(value, ref _isEnabled, "IsEnabled"); }
        } private bool _isEnabled = true;


        #endregion

    }
}
